// 高德地图天气API相关类型定义

// 天气查询参数
export interface WeatherQueryParams {
  city: string; // 城市编码或城市名称
  extensions?: 'base' | 'all'; // base:返回实况天气 all:返回预报天气
}

// 实况天气信息
export interface LiveWeather {
  province: string; // 省份名
  city: string; // 城市名
  adcode: string; // 区域编码
  weather: string; // 天气现象（汉字描述）
  temperature: string; // 实时气温，单位：摄氏度
  winddirection: string; // 风向描述
  windpower: string; // 风力级别，单位：级
  humidity: string; // 空气湿度
  reporttime: string; // 数据发布的时间
}

// 预报天气信息 - 单日
export interface ForecastDay {
  date: string; // 日期
  week: string; // 星期几
  dayweather: string; // 白天天气现象
  nightweather: string; // 晚上天气现象
  daytemp: string; // 白天温度
  nighttemp: string; // 晚上温度
  daywind: string; // 白天风向
  nightwind: string; // 晚上风向
  daypower: string; // 白天风力
  nightpower: string; // 晚上风力
}

// 预报天气信息
export interface ForecastWeather {
  province: string; // 省份名
  city: string; // 城市名
  adcode: string; // 区域编码
  reporttime: string; // 数据发布的时间
  casts: ForecastDay[]; // 预报数据
}

// 高德地图API响应结构
export interface AMapWeatherResponse {
  status: string; // 返回状态
  count: string; // 返回结果总数目
  info: string; // 返回的状态信息
  infocode: string; // 返回状态说明
  lives?: LiveWeather[]; // 实况天气数据，当extensions=base时返回
  forecasts?: ForecastWeather[]; // 预报天气数据，当extensions=all时返回
}

// 统一的天气响应格式
export interface WeatherResponse {
  success: boolean;
  message: string;
  data: {
    type: 'live' | 'forecast';
    weather: LiveWeather | ForecastWeather;
  } | null;
}

// 错误响应
export interface WeatherErrorResponse {
  success: false;
  message: string;
  error?: string;
}